package com.example.jobback.common.service;

import com.example.jobback.req.common.password.RecoverPasswordReq;
import com.example.jobback.resp.common.city.GetCityResp;
import com.example.jobback.resp.common.city.GetProvinceByCityResp;
import com.example.jobback.resp.common.company.GetCompanyIndustryResp;
import com.example.jobback.resp.common.position.GetPositionAllMessageResp;
import com.example.jobback.resp.common.position.category.GetPositionCategoryResp;
import com.example.jobback.resp.common.position.industry.GetPositionIndustryResp;
import com.example.jobback.resp.common.position.name.GetPositionNameByIndustryIdResp;
import com.example.jobback.resp.common.position.name.GetPositionNameResp;
import com.example.jobback.resp.common.province.GetProvinceResp;
import com.example.jobback.result.Result;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @InterfaceName: CommonService
 * @Description:
 * @Author: lhb
 * @Date: 2025/5/11
 */

@Service
public interface CommonService {
    Result<Object> sendPhoneCode(String phone) throws Exception;

    Result<Object> decryptPhone(String phoneAes) throws Exception;

    Result<Object> decryptPassword(String passwordAes);

    Result<Object> encryptPassword(String password);

    Result<List<GetProvinceResp>> getAllProvinces();

    Result<List<GetCityResp>> getCitiesByProvinceId(Long id);

    Result<List<GetCompanyIndustryResp>> getAllCompanyIndustries();

    Result<List<GetPositionIndustryResp>> getAllPositionIndustries();

    Result<List<GetPositionCategoryResp>> getPositionCategoriesByIndustryId(Long id);

    Result<List<GetPositionNameResp>> getPositionNamesByCategoryId(Long id);

    Result<List<GetPositionNameByIndustryIdResp>> getPositionNamesByIndustryId(Long id);

    Result<GetProvinceByCityResp> getProvinceByCity(String cityName);

    Result<GetPositionAllMessageResp> getPositionAllMessageByIndustryAndName(String industryName, String detailName);

    Result<Object> recoverPassword(RecoverPasswordReq recoverPasswordReq);

    Result<Object> insertSeeker(List<String> phoneList);
}
